import axios from 'axios';
// import { myConnect } from '@uti/instrument.js';
const TTMEOUT = 1000000;
// 创建axios 赋值给常量service
// console.log(import.meta,'----1');
// console.log(import.meta.env,'----2');
// console.log(import.meta.env.VITE_APP_API_URL,'----3');
const VITE_APP_API_URL = import.meta.env;
const service = axios.create({
  baseURL: import.meta.env.MODE === "production" ? import.meta.env.VITE_APP_API_URL : '/api',
  timeout: TTMEOUT
});

// withCredentials:默认情况下，跨源请求不提供凭据(cookie、HTTP认证及客户端SSL证明等)。通过将withCredentials属性设置为true，可以指定某个请求应该发送凭据。
// true：在跨域请求时，会携带用户凭证
// false：在跨域请求时，不会携带用户凭证；返回的 response 里也会忽略 cookie
// 当配置了 withCredentials = true时，必须在后端增加 response 头信息Access-Control-Allow-Origin，且必须指定域名，而不能指定为*
// 如果后端需要带cookie过去，前端需要设置为true
axios.defaults.withCredentials = true;

// 添加请求拦截器（Interceptors）
service.interceptors.request.use(function(config) {
  // 后续记得将token放到请求头中  ****一定要记得*****
  // config.headers = myConnect(config.headers,config.config.headers);
  // 发送请求之前做写什么
  return config;
}, function(error) {
  // 请求错误的时候做些什么
  return Promise.reject(error);
});

// 添加响应拦截器
service.interceptors.response.use(function(response) {
  // 对响应数据做点什么
  if (!response) {
    let response = { code:'000000', msg:'为获取任何数据', success:false };
    this.$notify({ type: 'danger', message: '通知内容' });
    return response;
  }
  return response;
}, function(error) {
  // 对响应错误做点什么
  return Promise.reject(error);
});
export default {
  // 封装get请求
  get(url, params = {}, config = {
    // headers: { 'Content-Type': 'multipart/form-data;' }
  }, responseType) {
    return service({ url, method: 'get', params , config, timeout: config.timeout || TTMEOUT, responseType: responseType || '' });
  },

  // 封装post请求
  post(url, params = {}, config = {}, responseType) {
    return service({ url, method: 'post', data: params, config, headers: config.headers || {} , timeout: config.timeout || TTMEOUT, responseType: responseType || '' });
  },

  // 封装delete请求
  delete(url, params = {}, config = {}, responseType) {
    return service({ url, method: 'delete', params, config, timeout: config.timeout || TTMEOUT, responseType: responseType || '' });
  },

  // put请求方法封装
  put(url, params = {}, config = {}) {
    return service({ url, method: 'put', data: params, config, timeout: config.timeout || TTMEOUT });
  }
};
